package com.mbc.service;


import com.mbc.dto.MbcAnimalShelterDTO;
import com.mbc.dto.MbcRealNameAuthenticationDTO;
import com.mbc.dto.GetMbcAnimalShelterDTO;
import com.mbc.vo.GetMbcAnimalShelterVO;

import java.util.ArrayList;

/**
 * <p>
 * 流浪动物庇护所表 服务类
 * </p>
 *
 * @author suimeng
 * @since 2024-04-17
 */
public interface AnimalShelterService {

    /**
     * 新增动物庇护所
     *
     * @param userId              用户 ID
     * @param mbcAnimalShelterDTO MBC 动物收容所 DTO
     * @return boolean
     */
    boolean insertAnimalShelter(Integer userId, MbcAnimalShelterDTO mbcAnimalShelterDTO);

    /**
     * 全查和条件查询庇护所
     *
     * @param getMbcAnimalShelterDTO 获取 MBC 动物收容所 DTO
     * @return {@link ArrayList}<{@link GetMbcAnimalShelterVO}>
     */
    ArrayList<GetMbcAnimalShelterVO> getByAnimalShelter(GetMbcAnimalShelterDTO getMbcAnimalShelterDTO);


    /**
     * 更新动物收容所
     *
     * @param mbcAnimalShelterDTO MBC 动物收容所 DTO
     * @param userId              用户 ID
     * @return boolean
     */
    boolean updateAnimalShelter(MbcAnimalShelterDTO mbcAnimalShelterDTO,Integer userId);

    /**
     * 删除动物收容所
     *
     * @param userId 用户 ID
     * @return boolean
     */
    boolean deleteAnimalShelter(Integer userId);

    /**
     * 新增动物庇护所创建人的实名认证
     *
     * @param userId                       用户 ID
     * @param mbcRealNameAuthenticationDTO MBC实名认证DTO
     * @return boolean
     */
    boolean insertRealNameAuthentication(Integer userId, MbcRealNameAuthenticationDTO mbcRealNameAuthenticationDTO);

    /**
     * 根据id查询庇护所详细信息
     *
     * @param shelterId 避难所 ID
     * @return {@link GetMbcAnimalShelterVO}
     */
    GetMbcAnimalShelterVO getByIdAnimalShelter(Integer shelterId);
}
